package cn.luischen.controller;

import cn.luischen.constant.ErrorConstant;
import cn.luischen.constant.Types;
import cn.luischen.constant.WebConst;
import cn.luischen.dto.ArchiveDto;
import cn.luischen.dto.cond.ContentCond;
import cn.luischen.exception.BusinessException;
import cn.luischen.model.CommentDomain;
import cn.luischen.model.ContentDomain;
import cn.luischen.service.comment.CommentService;
import cn.luischen.service.content.ContentService;
import cn.luischen.service.meta.MetaService;
import cn.luischen.service.option.OptionService;
import cn.luischen.service.site.SiteService;
import cn.luischen.utils.*;
import com.github.pagehelper.PageInfo;
import com.vdurmont.emoji.EmojiParser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.net.URLEncoder;
import java.util.Date;
import java.util.List;

import static org.junit.Assert.*;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
import org.junit.Rule;
import org.junit.runner.RunWith;
import org.junit.rules.ExpectedException;
import org.junit.Test;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.core.classloader.annotations.PowerMockIgnore;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.stubbing.Answer;
import java.lang.reflect.Method;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.parser.ParserConfig;
import java.util.Map;
import java.util.List;
import com.unitspirit.runtime.*;

/**
 * The class contains tests for the class cn.luischen.controller.HomeController.
 *
 * @generatedBy UnitSpirit CreateTemplateTestFile4
 * @version 1.0.9.11 
 */
@PowerMockIgnore({ "javax.management.*" })
@RunWith(PowerMockRunner.class)
@PrepareForTest({ javax.servlet.http.Cookie.class })
public class HomeController_cookie_WGTest {
	@Rule
	public ExpectedException unitspirit_thrown = ExpectedException.none();

	/**
	 * 测试方法初始化.
	 * 
	 * @throws Exception 
	 *         if the initialization fails for some reason 
	 *  
	 * @generatedBy UnitSpirit at 2021-12-08 11:01:07
	 */
	@org.junit.Before
	public void setUp() throws Exception {
		try {
			GlobalUnitInit.init();
			MockitoAnnotations.initMocks(this);
			ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	@InjectMocks
	cn.luischen.controller.HomeController unitspirit_fixture;

	@Mock
	cn.luischen.service.comment.CommentService mock_CommentService;
	@Mock
	cn.luischen.service.site.SiteService mock_SiteService;
	@Mock
	cn.luischen.service.option.OptionService mock_OptionService;
	@Mock
	cn.luischen.service.content.ContentService mock_ContentService;
	@Mock
	cn.luischen.service.meta.MetaService mock_MetaService;

	/**
	 * @date 2021-12-08 11:01:08
	 * @see cn.luischen.controller.HomeController#cookie
	 * @category auto generate by UnitSpirit  
	 * @author UnitSpirit   
	 */
	@Test
	public void test_cookie_1207_113909_364_1_0() throws Throwable {
		String String_p_0 = "tale_remember_mail";
		String String_p_1 = "11%40qq.com";
		int int_p_2 = 604800;
		javax.servlet.http.HttpServletResponse HttpServletResponse_p_3 = Mockito
				.mock(javax.servlet.http.HttpServletResponse.class);
		//成员变量设置

		//返回值定义 
		//该函数无返回值 

		javax.servlet.http.Cookie mock_sub_caller_Cookie4 = PowerMockito
				.mock(javax.servlet.http.Cookie.class);

		String Stringinit_4_0 = "tale_remember_mail";
		String Stringinit_4_1 = "11%40qq.com";
		int intmock3_0 = 604800;
		boolean booleanmock2_0 = false;
		javax.servlet.http.Cookie Cookiemock1_0 = UnitSpiritGsonUtil
				.getGson()
				.fromJson(
						"{\"maxAge\":604800,\"name\":\"tale_remember_mail\",\"httpOnly\":false,\"secure\":false,\"value\":\"11%40qq.com\",\"version\":0}",
						javax.servlet.http.Cookie.class);

		PowerMockito.whenNew(javax.servlet.http.Cookie.class)
				.withArguments(anyString(), anyString())
				.thenReturn(mock_sub_caller_Cookie4);
		//anyString(),anyString()
		PowerMockito.doNothing().when(mock_sub_caller_Cookie4)
				.setMaxAge(Mockito.anyInt());
		PowerMockito.doNothing().when(mock_sub_caller_Cookie4)
				.setSecure(anyBoolean());
		PowerMockito.doNothing().when(HttpServletResponse_p_3)
				.addCookie(Mockito.any(javax.servlet.http.Cookie.class));

		Whitebox.invokeMethod(unitspirit_fixture, "cookie", String_p_0,
				String_p_1, int_p_2, HttpServletResponse_p_3);
		assertTrue(true);
	}
  /**
  * @date 2021-12-08 11:01:08
  * @see cn.luischen.controller.HomeController#cookie
  * @category auto generate by UnitSpirit  
  * @author UnitSpirit   
  */
  @Test
  public void test_cookie_1207_113909_364_2_0() throws Throwable {
    String String_p_0 = "tale_remember_author";
    String String_p_1 = "111";
    int int_p_2 = 604800;
    javax.servlet.http.HttpServletResponse HttpServletResponse_p_3 = Mockito.mock(javax.servlet.http.HttpServletResponse.class);
  //成员变量设置


    //返回值定义 
    //该函数无返回值 

    javax.servlet.http.Cookie mock_sub_caller_Cookie4 = PowerMockito.mock(javax.servlet.http.Cookie.class);
     
    String Stringinit_4_0 = "tale_remember_author";
    String Stringinit_4_1 = "111";
    int intmock3_0 = 604800;
    boolean booleanmock2_0 = false;
    javax.servlet.http.Cookie Cookiemock1_0 =  UnitSpiritGsonUtil.getGson().fromJson("{\"maxAge\":604800,\"name\":\"tale_remember_author\",\"httpOnly\":false,\"secure\":false,\"value\":\"111\",\"version\":0}",javax.servlet.http.Cookie.class);

    PowerMockito.whenNew(javax.servlet.http.Cookie.class).withArguments(anyString(),anyString()).thenReturn( mock_sub_caller_Cookie4);
     //anyString(),anyString()
    PowerMockito.doNothing().when( mock_sub_caller_Cookie4).setMaxAge(Mockito.anyInt());
    PowerMockito.doNothing().when( mock_sub_caller_Cookie4).setSecure(anyBoolean());
    PowerMockito.doNothing().when(HttpServletResponse_p_3).addCookie(Mockito.any(javax.servlet.http.Cookie.class ));

    
    Whitebox.invokeMethod(unitspirit_fixture, "cookie",String_p_0,String_p_1,int_p_2,HttpServletResponse_p_3);
    assertTrue(true);
  }
}